Networks can become congested during periods of high usage. Network congestion increases the likelihood that packets being delivered over the network will not be delivered in a timely manner and, in some cases, packets may not delivered at all. For some types of applications, such as email applications or word processing applications, packet delay is not problematic. Moreover, if the packets are transported using a reliable transport technology, such as Transmission Control Protocol (TCP), the packets will eventually be resent if the recipient fails to acknowledge receipt. However, packet delay will greatly impact other types of applications, such as audio and video applications.
Certain network protocols include the ability to prioritize traffic to a limited extent. Packets typically obtain a priority based on an administrative setting that identifies certain categories of traffic, such as video traffic, as higher priority than non-video traffic. However, application-based priority may not be suitable where the majority of the traffic delivered over the network is the same application type.
Video is typically highly compressed before being transmitted over a network. The precise format of digital video varies depending on the type of encoder and encoding parameters used to generate the digitized video, but in general, video compression algorithms are based on reducing spatial redundancy and temporal redundancy. Spatial redundancy relates to similar samples within the same picture frame. For example, in a scene showing a close-up of a white sheet, a significant portion of the video information may be essentially the same data repeated over and over. Temporal redundancy relates to similar images between two adjacent picture frames. For example, in a scene showing very little movement, successive frames will be nearly identical to one another with only a very small portion of the video information changing from frame to frame. Video encoders are able to recognize such redundancy and generate data files that eliminate redundant video information but contain information that allows recreation of the redundant information during the decoding process so the video can be recreated and displayed at a quality very close to the original, uncompressed raw video. The encoding process results in a lower bit rate video stream than the original raw, uncompressed video stream.
A compressed digital video file or stream typically contains different types of video segments that have differing degrees of importance, or priority, based on the particular encoding algorithm used to create the digital video file. For example, Moving Picture Experts Group-2 (MPEG-2) encoders create three types of frames, referred to as an I-picture, a P-picture, and a B-picture. From the perspective of decoding the digital video file, an I-picture is more important than a P-picture or a B-picture because an I-picture is a reference frame, and a P-picture and a B-picture are predictively-coded pictures based on I-pictures. Consequently, if video packets must be discarded during times of network congestion, it would be beneficial if the video packets could be discarded based on the type of data carried by the video packet, rather than arbitrarily discarding video packets. What is needed, therefore, is a way to identify the types of video data carried by a video packet so that during congestion low-priority video packets can be discarded in favor of high-priority video packets.